perm filename NCOREQ.2[AID,LSP] blob sn#315285 filedate 1977-11-02 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(macrodef push (x) (setq pdl (cons x pdl)))
C00004 ENDMK
CāŠ—;
(macrodef push (x) (setq pdl (cons x pdl)))
(macrodef pop () (setq file (cdr file)))
(macrodef check () (cond ((null file)(throw (nreverse pdl) out))))
(macrodef default (file)
(cond (file
 (catch (prog (pdl)
	 (push (car file))
	 (pop)
	 (push (cond ((or (null file)
			  (memq (car file) '(dsk sys))
		   	  (not (atom (car file)))) '/ )
		     (t (prog2 nil (car file) (pop)))))
	 (check)
	 (push (cond ((atom (car file)) (prog2 nil (car file)(pop)))
		     (t 'dsk)))
	 (check)
	 (push (cond ((= (length (car file)) 2)(car file))
		     (t (list (caar file)(cadr (status udir))))))
	 (throw (nreverse pdl) out))
  out))))



(DECLARE (*FEXPR INPUSH) (*EXPR INPOP)) 

(DEFUN REQUIRE FEXPR (FILE) 
 ((LAMBDA(OFILE FILE)
       (APPLY 'CRUNIT (LIST 'DSK (STATUS UDIR)))
       (COND ((OR (EQ (CADR FILE) '/>)
		  (APPLY 'UPROBE FILE)))
	     (T (ERROR '|file not found - REQUIRE| FILE 11.)))
       (APPLY 'INPUSH FILE)
       (CATCH (CMP1) END-REQUIRE)
       (APPLY 'EREAD (COND ((EQ (CADR OFILE) '||) 
			    (RPLACA (CDR OFILE) '/ ) OFILE)
			   (OFILE)))
       (SETQ ↑Q T)
       (INPOP)
       (CRUNIT))
  (STATUS UREAD)(DEFAULT FILE)))